package mx.itesm.thirstforrevenge;



import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;

/**
 * 
 * @author Raúl Oscar Irene Rivas
 * @author Juan Carlos Felipe Torres
 * @author Victor López
 * @author Ivan Haecker
 * @version 1.1
 * Pantalla del Menu.
 * 
 */

public class Menu extends Activity {
	/** Called when the activity is first created. */



	private static final int DIALOGO_SALIR = 1;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);



		setContentView(R.layout.menu);



		((Button)findViewById(R.id.btnJuegoNuevo)).setOnClickListener(new OnClickListener(){

			/**
			 * Manda a llamar la pantalla de juegoNuevo.
			 * @param View
			 */
			public void onClick(View v){
				Intent juegoNuevo = new Intent(Menu.this,Dificultad.class);
				startActivity(juegoNuevo);
			}
		});

		((Button)findViewById(R.id.btnContinuar)).setOnClickListener(new OnClickListener(){

			/**
			 * Manda a llamar la pantalla de continuar.
			 * @param View
			 */			
			public void onClick(View v){
				Intent continuar = new Intent(Menu.this, PantallaJuego.class);
				startActivity(continuar);
			}
		});

		((Button)findViewById(R.id.btnInstrucciones)).setOnClickListener(new OnClickListener(){
			/**
			 * Manda a llamar la pantalla de instrucciones.
			 * @param View
			 */
			public void onClick(View v){
				Intent instrucciones = new Intent(Menu.this,Instrucciones.class);
				startActivity(instrucciones);
			}
		});
		((Button)findViewById(R.id.btnCreditos)).setOnClickListener(new OnClickListener(){

			/**
			 * Manda a llamar la pantalla de AcercaDe.
			 * @param View
			 */
			public void onClick(View v){
				Intent intencionAcerca = new Intent(Menu.this,AcercaDe.class);
				startActivity(intencionAcerca);
			}
		});
		((Button)findViewById(R.id.btnPuntajes)).setOnClickListener(new OnClickListener(){

			/**
			 * Manda a llamar la pantalla de puntajes.
			 * @param View
			 */
			public void onClick(View v){
				Intent puntajesIntention = new Intent(Menu.this,Puntajes.class);
				startActivity(puntajesIntention);
			}
		});

		((ImageButton)findViewById(R.id.btnAjustes)).setOnClickListener(new OnClickListener(){
			/**
			 * Manda a llamar la pantalla de Ajustes.
			 * @param View
			 */
			public void onClick(View v){
				Intent ajustesIntention = new Intent(Menu.this,Ajustes.class);
				startActivity(ajustesIntention);

			}
		});

	}
	/**
	 * Manda a llamar la ventana de confirmación de salida.
	 * @param int, KeyEvent
	 */
	public boolean onKeyDown(int keyCode, KeyEvent event) {

		if ((keyCode == KeyEvent.KEYCODE_BACK)) {

			showDialog(DIALOGO_SALIR);

		}
		return super.onKeyDown(keyCode, event);
	}

	/**
	 * Ventana que aparece cuando se desea salir de la aplicación, pide una cofirmación al usuario.
	 * @param id
	 */
	protected Dialog onCreateDialog(int id){
		Dialog cuadroDialogo = null;

		switch(id){

		case DIALOGO_SALIR:
			AlertDialog.Builder salirBuilder = new AlertDialog.Builder(this);
			salirBuilder.setTitle("Salir");
			salirBuilder.setIcon(R.drawable.shut_down);
			salirBuilder.setCancelable(false);
			salirBuilder.setMessage("¿Seguro que deseas salir?");
			salirBuilder.setPositiveButton("Si", new DialogInterface.OnClickListener() {

				@Override
				/**
				 * Cierra la ventana al dar click en Si.
				 * @param DialogInterface, int
				 */
				public void onClick(DialogInterface dialog, int arg1) {
					// TODO Auto-generated method stub
					dialog.dismiss();			
					finish(); //termina la actividad
				}
			});

			salirBuilder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

				@Override
				/**
				 * Cierra la ventana al dar click en No.
				 * @param DialogInterface, int
				 */
				public void onClick(DialogInterface dialog, int arg1) {
					// TODO Auto-generated method stub
					dialog.dismiss();
				}
			});
			cuadroDialogo = salirBuilder.create();

			break;

		default:
			break;
		}
		return cuadroDialogo;
	}


}